#include<stdio.h>
#include<string.h>
#include<math.h>

void funz(int n)
{   
	if(n<2){
	printf("%d",n%2);
	return;
}
	else  funz(n/2);
	printf("%d",n%2);
}
void funx(double n)
{
	while(n>1e-8)
	{
		n*=2;
		int i=(int)n;
		printf("%d",i);
		if(n>=1)n-=1;
	
	}
}
double zheng(char *a)
{    int i;
	 for( i=0;i<strlen(a)&&a[i]!='.';i++);
	 i-=1;
	 
	 double zh=0;
	int j=i;
	 for(;i>=0&&a[i]>=48&&a[i]<='9';i--)
	 {
	 	zh+=pow(2,j-i)*(a[i]-48);
	 }
	 if(a[0]=='-')
	 return -zh;
	else return zh;
}
double xiao(char *a)
{     int i;
	 for( i=0;a[i]&&a[i]!='.';i++);
	 if(a[i]==0)return 0;
	 i++;
	 double xi=0;
	 double j=-1;
	 for(;i>=0&&a[i]>=48&&a[i]<='9';i++,j--)
	 xi+=pow(2,j)*(a[i]-48);
	 if(a[0]=='-')
	return -xi;
else return xi;
}
void add2()
{char str1[10],str2[10];
char str3[10]={0};
double x1,x2,y1,y2,result;
    
	scanf("%s %s",str1,str2);
	 x1=zheng(str1);
	 y1=xiao(str1);
     x2=zheng(str2);
	 y2=xiao(str2);
  result=x1+x2+y1+y2;
  if(result<-1e-6)putchar('-');
 // printf("%lf  %lf\n",x1+y1,x2+y2);
  int num=(int)result;
  result-=num;
  //printf("%lf %d\n",result,num);
 funz(abs((int)num));
if(fabs(result)>1e-8)
    {
	putchar('.');
 funx(fabs(result));
}
 


}

main()
{
	
    int n;
    double x,y;
    scanf("%d",&n);
    while(n--)
    {
    add2();
	}
 
 } 
